Path-Sensitive Analysis Using Edge Strings
نویسندگان
چکیده
Path sensitivity improves the quality of static analysis by avoiding approximative merging of dataflow facts collected along distinct program paths. Because full path sensitivity has prohibitive cost, it is worthwhile to consider hybrid approaches that provide path sensitivity on selected subsets of paths. In this paper, we consider such a technique based on an edge string, a compact abstraction of a set of static program paths. The edge string es = [e1, e2, . . . , ek], where each ei is an edge label found in a program’s control-flow graph, is used to disambiguate dataflow facts that manifest only on paths in which es occurs as a subsequence. The length of es dictates the tradeoff between precision and analysis cost. Loosely speaking, edge strings are a path-sensitive analog to the notion of call-strings exploited by context-sensitive analyses . We present a formalization of edge strings and discuss optimizations that incorporate additional relevance measures, based on the structure of the controlflow graph, to avoid exploring edge-string paths if no added precision accrues. We also provide a detailed implementation study in the context of the functional SSA intermediate representation used by MLton, a whole-program optimizing compiler for Standard ML. Our results indicate that small edge strings provide the necessary precision to identify infeasible paths for functional programs that leverage complex control and dataflow.
منابع مشابه
Index-sensitive String Analysis Based on Monadic Second-order Logic
We propose a novel technique for statically verifying the strings generated by a program. The verification is conducted by encoding the program inMonadic Second-Order Logic (M2L). We use M2L to describe constraints among program variables and to abstract built-in string operations. Once we encode a program in M2L, a theorem prover for M2L, such as MONA, can automatically check if a string gener...
متن کاملThe complexity of nonrepetitive edge coloring of graphs
A squarefree word is a sequence w of symbols such that there are no strings x, y, and z for which w = xyyz. A nonrepetitive coloring of a graph is an edge coloring in which the sequence of colors along any open path is squarefree. We show that determining whether a graph G has a nonrepetitive k-coloring is Σ p 2 -complete. When we restrict to paths of lengths at most n, the problem becomes NP-c...
متن کاملAn Analysis of the Height of Tries with Random Weights on the Edges
We analyze the weighted height of random tries built from independent strings of i.i.d. symbols on the finite alphabet {1, . . . , d}. The edges receive random weights whose distribution depends upon the number of strings that visit that edge. Such a model covers the hybrid tries of de la Briandais (1959) and the TST of Bentley and Sedgewick (1997), where the search time for a string can be dec...
متن کاملSignal Analysis on Strings for Immune-Type Pattern Recognition
We use wavelet-type discrete transforms for signal analysis on strings of finite length. We apply these transforms for edge and hidden Markov process detection. We also present new approaches for string matching and for measures of the diversity of chaotic strings.
متن کاملStudy of Random Biased d-ary Tries Model
Tries are the most popular data structure on strings. We can construct d-ary tries by using strings over an alphabet leading to d-ary tries. Throughout the paper we assume that strings stored in trie are generated by an appropriate memory less source. In this paper, with a special combinatorial approach we extend their analysis for average profiles to d-ary tries. We use this combinatorial appr...
متن کامل